import type { App } from "vue";
import type { LaunchOptions } from "@sfx-lib/core";

// 1. 全局使用
// import * as ElementPlus from "element-plus";

// 2. 全局注册图标 (保证菜单配置中可以使用图标名称作为配置项)
// import * as ElementPlusIconsVue from "@element-plus/icons-vue";

// 3. 全局使用 element plus styles
// import "element-plus/dist/index.css";

// 4. 支持暗黑模式 - el 元素可以支持 dark mode
//    并且也不需要再设置 html.dark {} css 样式了, 如果设置了会覆盖 elplus css style
// import "element-plus/theme-chalk/dark/css-vars.css";

/**
 * setupElementPlus
 * @param app
 * @param options
 */
export async function setupElementPlus(app: App, options: LaunchOptions) {
    // 1. 全局使用 element-plus 组件
    const ElementPlus = await import("element-plus");
    app.use(ElementPlus);

    // 2. 全局注册图标 (保证菜单配置中可以使用图标名称作为配置项)
    const ElementPlusIconsVue = await import("@element-plus/icons-vue");
    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
        app.component(`${key}`, component);
    }

    // 3. 全局使用 element plus styles
    await import("element-plus/dist/index.css");

    // 4. 支持暗黑模式 - el 元素可以支持 dark mode
    //    并且也不需要再设置 html.dark {} css 样式了, 如果设置了会覆盖 elplus css style
    await import("element-plus/theme-chalk/dark/css-vars.css");
}
